﻿Public Class frmUsuariosEditar

    Private mEditarBS As BS.Usuarios
    Private mEditarBE As BE.Usuarios
    Private mId As Integer
    Private mFechaCreacion As Date
    Private mNombreUsuario As String

    'Propiedades
    Property Id As Integer
        Get
            Return mId
        End Get
        Set(ByVal value As Integer)
            mId = value
        End Set
    End Property



    Private Sub frmUsuariosEditar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Inicia busqueda de la informacion del usuario por el id
        mEditarBS = New BS.Usuarios
        mEditarBE = mEditarBS.Obtener(Me.Id)

        'Despues de obtener los datos de la capa Banco.BS
        Me.txtNombreCompleto.Text = mEditarBE.NombreCompleto
        Me.txtIdentificacion.Text = mEditarBE.Identificacion
        Me.txtUsuario.Text = mEditarBE.NombreUsuario
        Me.txtContrasena.Text = mEditarBE.Contraseña
        Me.cbPerfil.SelectedIndex = mEditarBE.Perfil
        Me.cbEstado.SelectedIndex = mEditarBE.Estado
        Me.txtFechaCreacion.Text = mEditarBE.FechaCreacion
        mFechaCreacion = mEditarBE.FechaCreacion
        mNombreUsuario = mEditarBE.NombreUsuario

    End Sub

    Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click

        mEditarBS = New BS.Usuarios
        Dim condicion As Boolean = False

        'Se Actualizan los datos en la BD
        If DatosValidos() Then

            If txtUsuario.Text <> mNombreUsuario Then 'Si se alteró el campo nombre de usuario
                condicion = mEditarBS.restriccion1(txtUsuario.Text)
            End If

            If condicion = False Then
                mEditarBE.Id = Id
                mEditarBE.NombreCompleto = txtNombreCompleto.Text
                mEditarBE.Identificacion = txtIdentificacion.Text
                mEditarBE.NombreUsuario = txtUsuario.Text
                mEditarBE.Contraseña = txtContrasena.Text
                mEditarBE.Perfil = cbPerfil.SelectedIndex
                mEditarBE.Estado = cbEstado.SelectedIndex
                mEditarBE.FechaCreacion = txtFechaCreacion.Text

                Try
                    Me.mEditarBS.Editar(mEditarBE)
                Catch ex As Exception
                    MessageBox.Show("Problemas al Editar Los datos")
                End Try

                Me.DialogResult = Windows.Forms.DialogResult.OK
            Else
                MessageBox.Show("Usuario ya en uso, no se puede editar")
                Me.Close()
            End If

        End If

    End Sub

    Function DatosValidos() As Boolean 'Se validan los campos
        Dim primerControl As Control = Nothing
        Dim mensajeDeValidacion As String = String.Empty

        Me.txtNombreCompleto.Text = Me.txtNombreCompleto.Text.Trim
        Me.txtIdentificacion.Text = Me.txtIdentificacion.Text.Trim
        Me.txtUsuario.Text = Me.txtUsuario.Text.Trim
        Me.txtContrasena.Text = Me.txtContrasena.Text.Trim

        If Me.txtNombreCompleto.Text = String.Empty Then
            mensajeDeValidacion = "Nombre es requerido"
            primerControl = Me.txtNombreCompleto
        End If

        If Me.txtIdentificacion.Text = String.Empty Then
            mensajeDeValidacion = "Identificacion es requerida"
            primerControl = Me.txtIdentificacion
        End If

        If Me.txtUsuario.Text = String.Empty Then
            mensajeDeValidacion = "Nombre de Usuario es requerido"
            primerControl = Me.txtUsuario
        End If

        If Me.txtContrasena.Text = String.Empty Then
            mensajeDeValidacion = "Contraseña es requerida"
            primerControl = Me.txtContrasena
        End If

        If Me.cbPerfil.Text.Trim.Length = 0 Then
            mensajeDeValidacion = "Perfil es requerido"
            primerControl = Me.cbPerfil
        End If

        If Me.cbEstado.Text.Trim.Length = 0 Then
            mensajeDeValidacion = "Estado es requerido"
            primerControl = Me.cbPerfil
        End If



        If Not primerControl Is Nothing Then
            MessageBox.Show(mensajeDeValidacion, "Validación", MessageBoxButtons.OK)
            primerControl.Focus()
            Return False

        End If

        Return True
    End Function


End Class
